package com.example.graduate.service;

import com.example.graduate.dto.*;
import com.example.graduate.pojo.User;
import com.example.graduate.response.DataResponse;

import javax.xml.crypto.Data;

public interface UserService {

    /**
     * 登陆接口
     *
     * @param request
     * @return
     */
    DataResponse login(LoginRequest request);

    /**
     * 获取余额接口
     */
    Double getBalance(User user);

    /**
     * 充值接口
     */
    DataResponse addBalance(RechargeRequest rechargeRequest);

    /**
     * 提现接口
     */
    DataResponse subBalance(WithDrawRequest rechargeRequest);

    /**
     * 账号注册
     * @param registerAcountRequest
     * @return
     */
    DataResponse registerAccount(RegisterAcountRequest registerAcountRequest);

    /**
     * 账号注销
     * @param freezeAcountRequest
     * @return
     */
    DataResponse freezeAccount(FreezeAcountRequest freezeAcountRequest);

    /**
     * 密码重置
     * @param resetPasswordRequest
     * @return
     */
    DataResponse resetPassword(ResetPasswordRequest resetPasswordRequest);

    /**
     * 充值提现流水
     * @param request
     * @return
     */
    DataResponse getAccountSerial(AccountSerialRequest request);

    /**
     * 获取用户信息
     * @param userInfoRequest
     * @return
     */
    DataResponse getUserInfo(UserInfoRequest userInfoRequest);

    /**
     * 更改账状态
     * @param chanceAccountStatusRequest
     * @return
     */
    DataResponse chanceAccountStatus(ChanceAccountStatusRequest chanceAccountStatusRequest);
}
